package com.lyf.language.learn.atsgg.io.stream;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

/**
 * @AUTHOR LYF
 * @DATE 2022/6/1
 * @VERSION 1.0
 * @DESC
 * 流：
 * 四大基类
 *
 *  ----------------————————————————————————————---------——————
 * .    字节流（视频、图片等）       字符流（char字符，文本）
 * .    I/O Stream               Reader/Writer
 * -------------------------------------------------------------
 * 节点流（File I/O Stream）\处理流（外层包裹）
 *
 * 定位：
 * 相对于程序-内存
 *
 */
public class StreamDemo {
    //注意处理关闭，处理异常
    public static void main(String[] args) throws IOException {
        String filePath = "E:\\JavaProjects\\LearnProjects\\learn-practice\\java-base\\src\\main\\java\\com\\lyf\\language\\learn\\atsgg\\io\\files\\hello.txt";
        FileInputStream fileInputStream = null;
        try {
            // 建立IO流--通信通道--双方节点--file可以是文件夹、文件（一切数据--）
            fileInputStream = new FileInputStream(filePath);
            // 直接节点流处理，读取为bytes--字节（8bit)---
            byte[] bytes=new byte[1024];
            //int num = fileInputStream.read(bytes);
            while (fileInputStream.read(bytes)>0){
                System.out.println(new String(bytes));
            }


            // 写入
            FileOutputStream fileOutputStream = new FileOutputStream(filePath);
            // 直接覆盖掉以前的
            // 处理编码问题--
            fileOutputStream.write("您好".getBytes());
            fileOutputStream.write("测试".getBytes(StandardCharsets.UTF_8),2,"测试".length());


            FileReader fileReader = new FileReader(filePath);
            char[] chars=new char[1024];
            while(fileReader.read(chars)>0){
                 System.out.println(Arrays.toString(chars));// Arrays
            }



        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(fileInputStream!=null)
                 fileInputStream.close();
//            fileOutputStream.close();
//            fileReader.close();
        }





    }
}
